home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
COM
/
ProTERM Mac1.2a.sit
/
ProTERM Mac1.2a
/
Extras
/
Modem Tester
< prev
next >
Wrap
Text File
|
1996-07-21
|
4KB
|
207 lines
//
// Modem Tester Macro
//
INT ok;
STR msg, stat;
INT _slow, _fast;
STR _af, _ad, _ac, __e, _q5, _q6;
STR _an, __n, _bj, _bn, _bq, __w;
// make sure user wants to test
ok = WIN_NOTE(2,'Are you ready to begin testing');
IF (ok != 1) { GOTO quit; }
// step 1: find modem command speed
msg = "";
_slow = min_spd();
_fast = max_spd();
opt_spd(_slow, _fast);
// step 2: set the command flags
IF (_slow || _fast) {
_ac = mdm_cmd("&C0");
_ad = mdm_cmd("&D0");
__e = mdm_cmd("E0");
_q5 = mdm_cmd("&Q5");
_q6 = mdm_cmd("&Q6");
_an = mdm_cmd("&N6");
__n = mdm_cmd("N1");
_bj = mdm_cmd("¥J1");
_bn = mdm_cmd("¥N3");
_bq = mdm_cmd("¥Q3");
__w = mdm_cmd("W1")
_af = mdm_cmd("&F");
}
// try and determine modem type
IF (__e == "No") {
msg = "???";
} ELSE IF (_fast <= 300) {
msg = "300";
} ELSE If (_fast == 1200) {
msg = "1200";
} ELSE IF (_fast == 2400) {
msg = "2400";
} ELSE IF (_slow == _fast) {
msg = "FIXED";
} ELSE IF (_bn == "Yes" && _bj == "Yes" && _bq == "Yes") {
msg = "MNP";
} ELSE IF (_fast < 9600 || _af == "No") {
msg = "???";
} ELSE IF (_q5 == "Yes" && __n == "Yes" && __w == "Yes") {
msg = "V9600";
} ELSE IF (_q5 == "No" && _q6 == "Yes" && __n == "Yes") {
msg = "RPI";
} ELSE IF (_an == "Yes") {
msg = "USR";
} ELSE {
msg = "???";
}
// give recommendation
WIN_NOTE(4,SWITCH(msg) {
CASE "300":
{'Try configuring as:^M Generic-AT 300'}
CASE "1200":
{'Try configuring as:^M Generic-AT 1200'}
CASE "2400":
{'Try configuring as:^M Generic-AT 2400'}
CASE "9600":
{'Try configuring as Generic-AT 9600. If high-speed
connects fail, try Generic-AT Fixed-Speed instead.'}
CASE "FIXED":
{'Try configuring as:^M Generic-AT Fixed-Speed'}
CASE "V9600":
{'Try configuring as:^M Hayes Smartmodem V9600'}
CASE "MNP":
{'Try configuring as:^M Generic-AT ¥Nx'}
CASE "USR":
{'Try configuring as:^M US Robotics HST'}
CASE "RPI":
{'Try configuring as:^M Generic-AT &Q6'}
CASE "???":
{'Modem Tester is unable to determine the type of
modem connected. If you need to contact InTrec
Technical Support, please copy down the next page
of testing results and have them available when
you call or enclose them when you write.'}
default:
{'There is no response from the modem. Make
sure the modem is turned-on and connected
to the modem port and try testing again.'}
});
// show extra detail info
IF (msg != "") {
stat = STR_FORMAT(
'Detailed Modem Testing Results:
Speed: %d-%d,
&F: %s, &D: %s, &C: %s, E: %s
&Q5: %s, &Q6: %s, &N: %s, N: %s
¥J: %s, ¥N: %s, ¥Q: %s, W: %s',
_slow, _fast, _af, _ad, _ac, __e, _q5, _q6, _an, __n, _bj, _bn, _bq, __w);
WIN_NOTE(4,stat);
};
quit:
ui_close("Modem Tester");
end;
//
// check command support
//
FUNC mdm_cmd(STR cmd)
{
INT result;
INT retry = 3;
WHILE (retry = retry-1) {
PR("AT"+cmd+"^m");
result = WT(300,"OK","ERROR");
WT(25);
IF (result == 1) { RETURN("Yes"); }
IF (result == 2) { RETURN("No"); }
}
RETURN("???");
}
//
// find any modem command speed
//
FUNC any_spd()
{
int spd;
spd = 300;
WHILE (spd <= 38400) {
SES_SET(#termChan, "SPEED", STR_NUM(spd)+" bps");
PR("^m");
WT(25);
IF (mdm_cmd("E0V1") == "Yes") { RETURN(spd); }
spd = spd * 2;
}
RETURN(0);
}
//
// find minimum modem command speed
//
FUNC min_spd()
{
INT spd = any_spd();
if (!spd) { RETURN(0); }
WHILE (1) {
IF (spd <= 300) { RETURN(300); }
SES_SET(#termChan, "SPEED", STR_NUM(spd/2)+" bps");
PR("^m");
WT(25);
IF (mdm_cmd("E0") != "Yes") { RETURN(spd); }
spd = spd / 2;
}
}
//
// find maximum modem command speed
//
FUNC max_spd()
{
INT spd = any_spd();
if (!spd) { RETURN(0); }
WHILE (1) {
IF (spd >= 38400) { RETURN(38400); }
SES_SET(#termChan, "SPEED", STR_NUM(spd*2)+" bps");
PR("^m");
WT(25);
IF (mdm_cmd("E0") != "Yes") { RETURN(spd); }
spd = spd * 2;
}
}
//
// set to optimum command speed
//
FUNC opt_spd(INT min, INT max)
{
INT spd;
spd = max;
if (spd > 9600) { spd = 9600; }
if (spd < min) { spd = min; }
SES_SET(#termChan, "SPEED", STR_NUM(spd)+" bps");
PR("^m");
WT(25);
mdm_cmd("");
RETURN;
}